import {
  constantRoutes,
  dynamicRouters
} from '@/router'

const state = {
  // 路由表, 标记当前用户所拥有的所有路由
  routes: constantRoutes // 默认静态路由表
}
const mutations = {
  // otherRoutes登录成功后, 需要添加的新路由
  setRoutes(state, otherRoutes) {
    // 静态路由基础上, 累加其他权限路由
    state.routes = [...constantRoutes, ...otherRoutes]
  }
}
const actions = {
  filterAuth(context) {
    // 获取用户信息
    const menus = context.rootState.user.userInfo.roles.menus
    // 根据menus信息从所有的动态路由dynamicRouters中过滤出该用户所拥有的动态路由
    const myRoutes = dynamicRouters.filter(item => {
      return menus.includes(item.children[0].name)
    })
    // 提交到mutations
    context.commit('setRoutes', myRoutes)
    return myRoutes
  }
}
export default {
  namespaced: true,
  state,
  mutations,
  actions
}
